package com.zjdiepu.www.ibiz.base;

import java.util.List;
import java.util.Set;

import com.zjdiepu.www.base.enums.type.OperateType;
import com.zjdiepu.www.model.base.dto.DpBaseDealerInfo;
import com.zjdiepu.www.model.base.ext.DpBaseDealerInfoExt;
import com.zjdiepu.www.model.base.vo.DpBaseDealerInfoVo;

/**
 * 经销商表Service层操作<br/>
 * @author xiongxiaotun<br/>
 * @time 2017年04月06日 16时04分<br/>
 * @since 1.0<br/>
 */
public interface IDpBaseDealerInfoService {
	/**
	 * 保存经销商修改
	 * @author xiongxiaotun <br/>
	 * @Title saveChangeDealerInfo  <br/>
	 * @Description 保存经销商修改<br/>
	 * @param busiId
	 * @param dealerId
	 * @version V1.0  <br/>
	 */
	DpBaseDealerInfo saveChangeDealerInfo(String busiId, String dealerId);
	/**
	 * 新增,更新和保存
	 * 
	 * @param DpBaseDealerInfo 
	 * @param OperateType 操作类型 {@link OperateType}
	 */
	void saveUpdateAndDelete(DpBaseDealerInfo dpBaseDealerInfo,OperateType operType);
	
	/**
	 * 条件查询
	 * @date 2017年04月06日 16时04分
	 * @param dpBaseDealerInfoExt
	 * @return
	 */
	List<DpBaseDealerInfo> selectByExt(DpBaseDealerInfoExt dpBaseDealerInfoExt);
	
	/**
	 * 条件统计
	 * @date 2017年04月06日 16时04分
	 * @param dpBaseDealerInfoExt
	 * @return
	 */
	int countByExt(DpBaseDealerInfoExt dpBaseDealerInfoExt);
	
	/**
	 * 主键查询
	 * @date 2017年04月06日 16时04分
	 * @param id
	 * @return
	 */
	DpBaseDealerInfo selectById(String id);
	
	/**
	 * 根据主键清除空字段，设置值为null
	 * @date 2017年04月06日 16时04分
	 * @param fieldNames 字段名
	 * @param id 主键
	 */
	void clearEmpty(Set<String> fieldNames, String id);

	DpBaseDealerInfoVo getMulitListById(String id);
}
